package com.miaosmart.service;

import com.miaosmart.dto.req.EmailVerficationReqDTO;
import com.miaosmart.dto.req.LoginReqDTO;
import com.miaosmart.dto.req.RegisterReqDTO;
import com.miaosmart.dto.req.UserUpdateReqDTO;
import com.miaosmart.dto.resp.GetUserInfoRespDTO;
import com.miaosmart.dto.resp.LoginRespDTO;
import com.miaosmart.dto.resp.RegisterRespDTO;
import com.miaosmart.dto.resp.UserUpdateRespDTO;
import com.miaosmart.entity.User;

import java.io.IOException;
import java.util.Map;

public interface AuthService {


    /**
     * @param email
     * @Description: 发送邮箱验证码
     */

    void sendVerificationCode(EmailVerficationReqDTO email);

    /**
     * @param registerDTO
     * @return {@code RegisterRespDTO }
     * @Description: 用户注册
     */

    RegisterRespDTO register(RegisterReqDTO registerDTO);

    /**
     * @param loginDTO
     * @return {@code LoginRespDTO }
     * @Description: 用户登录
     */

    LoginRespDTO login(LoginReqDTO loginDTO);

    GetUserInfoRespDTO getCurrentUser();

    /**
     * @param userUpdateDTO
     * @return {@code UserUpdateRespDTO }
     * @Description: 修改用户信息
     */

    UserUpdateRespDTO updateUser(UserUpdateReqDTO userUpdateDTO) throws IOException;
} 